User interfaces provide a mechanism by which a user communicates with a program on a computer system. A common goal when designing a user interface is to provide a mechanism for simple and efficient communication. Specifically, the amount of time to provide instructions and receive information based on those instructions should be minimal and at the same time easy to learn and simple to use. One mechanism by which a user may submit commands is hotkeys. A hotkey is a key or key combination that is assigned to a function. For example, a user of a word processing application may press the <Ctrl> key and the <S> key on the keyboard to trigger the save function. In another example, a user may press the <Alt> key and the <F> key to open the file menu, followed by the <S> key to trigger the save function.
Hotkeys are generally statically assigned to functions. Specifically, the application maintains a list of hotkeys with an identifier of the function. A user may update the list of hotkeys by opening a dialog box, selecting a function, and specifying a hotkey. The user-assigned hotkeys may then be used the next time the user uses the application. Specifically, after the user updates the list of hotkeys, the user may use the hotkey to request the corresponding function.